package com.benshou.bcss.common.feign.config.props;

import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;

import java.time.Duration;

/**
 * Feign 使用的 OkHttp 客户端的属性
 *
 * @author <a href="mailto:liuzhenbang@benshou.com">Liu Zhenbang</a>
 */
@ConfigurationProperties(prefix = "feign.okhttp")
@Data
@Validated
public class FeignOkhttpProps {

    /**
     * 连接超时。 YML 设置时，示例：10s
     */
    @NotNull
    private Duration connectTimeout = Duration.ofSeconds(10);

    /**
     * 读超时。 YML 设置时，示例：30s
     */
    @NotNull
    private Duration readTimeout = Duration.ofSeconds(30);

    /**
     * 写超时。 YML 设置时，示例：15s
     */
    @NotNull
    private Duration writeTimeout = Duration.ofSeconds(15);
}
